package com.demo.apparel.service.web;

import com.demo.apparel.dto.CategoryDTO;
import com.demo.apparel.dto.ClothesByCategoryDTO;
import com.demo.apparel.dto.web.CategoryPageQueryDTO;
import com.demo.apparel.dto.web.ClothesTypeAddDTO;
import com.demo.apparel.vo.PageVO;
import com.demo.apparel.vo.web.CategoryWithSubExportVO;
import com.demo.apparel.vo.web.CategoryWithSubVO;

import java.util.List;

public interface WebCategoryService {
//    void addCategory(CategoryDTO dto);
boolean addCategory(CategoryDTO dto);


    List<CategoryDTO> getAllCategories();

    /**
     *
     * @param category
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageVO<ClothesByCategoryDTO> getClothesByCategory(int category, int pageNum, int pageSize);

    /**
     *获取分类以及子类的昵称
     * @param query
     * @return
     */
    PageVO<CategoryWithSubVO> getCategoryWithSubPage(CategoryPageQueryDTO query);

    /**
     * 新增的子分类
     * @param dto
     */
    void addClothesType(ClothesTypeAddDTO dto);

    /**
     * 编辑小类
     * @param dto
     * @return
     */
    boolean updateClothesType(ClothesTypeAddDTO dto);

    /**
     * 根据大类ID删除大类及其对应的小类
     * @param id 大类的ID（categories表的主键）
     * @return 是否删除成功
     */
    boolean deleteCategoryById(String id);

    // 删除小类
    boolean deleteClothesTypeById(String id);

    boolean updateCategoryName(Integer category, String categoryName);

    /**
     * 获取导出数据（包含大类和子类信息）
     */
    List<CategoryWithSubExportVO> getExportData();
}

